home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_import.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  5KB  |  184 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. from test.test_support import TESTFN, TestFailed
  5. import os
  6. import random
  7. import sys
  8. import py_compile
  9.  
  10. try:
  11.     import RAnDoM
  12. except ImportError:
  13.     pass
  14.  
  15. raise TestFailed('import of RAnDoM should have failed (case mismatch)')
  16. import double_const
  17.  
  18. def remove_files(name):
  19.     for f in (name + os.extsep + 'py', name + os.extsep + 'pyc', name + os.extsep + 'pyo', name + os.extsep + 'pyw', name + '$py.class'):
  20.         if os.path.exists(f):
  21.             os.remove(f)
  22.             continue
  23.     
  24.  
  25.  
  26. def test_with_extension(ext):
  27.     source = TESTFN + ext
  28.     pyo = TESTFN + os.extsep + 'pyo'
  29.     if sys.platform.startswith('java'):
  30.         pyc = TESTFN + '$py.class'
  31.     else:
  32.         pyc = TESTFN + os.extsep + 'pyc'
  33.     f = open(source, 'w')
  34.     print >>f, "# This tests Python's ability to import a", ext, 'file.'
  35.     a = random.randrange(1000)
  36.     b = random.randrange(1000)
  37.     print >>f, 'a =', a
  38.     print >>f, 'b =', b
  39.     f.close()
  40.     
  41.     try:
  42.         mod = __import__(TESTFN)
  43.     except ImportError:
  44.         err = None
  45.         raise ValueError('import from %s failed: %s' % (ext, err))
  46.     
  47.  
  48.     if mod.a != a or mod.b != b:
  49.         print a, '!=', mod.a
  50.         print b, '!=', mod.b
  51.         raise ValueError('module loaded (%s) but contents invalid' % mod)
  52.     os.unlink(source)
  53.     
  54.     try:
  55.         reload(mod)
  56.     except ImportError:
  57.         err = mod.b != b
  58.         raise ValueError('import from .pyc/.pyo failed: %s' % err)
  59.     finally:
  60.         
  61.         try:
  62.             os.unlink(pyc)
  63.         except os.error:
  64.             mod.b != b
  65.  
  66.         
  67.         try:
  68.             os.unlink(pyo)
  69.         except os.error:
  70.             mod.b != b
  71.  
  72.         del sys.modules[TESTFN]
  73.  
  74.  
  75. sys.path.insert(0, os.curdir)
  76.  
  77. try:
  78.     test_with_extension(os.extsep + 'py')
  79.     if sys.platform.startswith('win'):
  80.         for ext in ('.PY', '.Py', '.pY', '.pyw', '.PYW', '.pYw'):
  81.             test_with_extension(ext)
  82.         
  83. finally:
  84.     del sys.path[0]
  85.  
  86. import imp
  87. x = imp.find_module('os')
  88. os = imp.load_module('os', *x)
  89.  
  90. def test_module_with_large_stack(module):
  91.     filename = module + os.extsep + 'py'
  92.     f = open(filename, 'w+')
  93.     f.write('d = [\n')
  94.     for i in range(65000):
  95.         f.write('"",\n')
  96.     
  97.     f.write(']')
  98.     f.close()
  99.     f = open(filename, 'r')
  100.     py_compile.compile(filename)
  101.     f.close()
  102.     os.unlink(filename)
  103.     sys.path.append('')
  104.     exec 'import ' + module
  105.     del sys.path[-1]
  106.     for ext in ('pyc', 'pyo'):
  107.         fname = module + os.extsep + ext
  108.         if os.path.exists(fname):
  109.             os.unlink(fname)
  110.             continue
  111.     
  112.  
  113. test_module_with_large_stack('longlist')
  114.  
  115. def test_failing_import_sticks():
  116.     source = TESTFN + os.extsep + 'py'
  117.     f = open(source, 'w')
  118.     print >>f, 'a = 1/0'
  119.     f.close()
  120.     sys.path.insert(0, os.curdir)
  121.     
  122.     try:
  123.         for i in (1, 2, 3):
  124.             
  125.             try:
  126.                 mod = __import__(TESTFN)
  127.             except ZeroDivisionError:
  128.                 if TESTFN in sys.modules:
  129.                     raise TestFailed('damaged module in sys.modules', i)
  130.                 
  131.                 TESTFN in sys.modules
  132.  
  133.             raise TestFailed('was able to import a damaged module', i)
  134.     finally:
  135.         sys.path.pop(0)
  136.         remove_files(TESTFN)
  137.  
  138.  
  139. test_failing_import_sticks()
  140.  
  141. def test_failing_reload():
  142.     source = TESTFN + os.extsep + 'py'
  143.     f = open(source, 'w')
  144.     print >>f, 'a = 1'
  145.     print >>f, 'b = 2'
  146.     f.close()
  147.     sys.path.insert(0, os.curdir)
  148.     
  149.     try:
  150.         mod = __import__(TESTFN)
  151.         if TESTFN not in sys.modules:
  152.             raise TestFailed('expected module in sys.modules')
  153.         
  154.         if mod.a != 1 or mod.b != 2:
  155.             raise TestFailed('module has wrong attribute values')
  156.         
  157.         remove_files(TESTFN)
  158.         f = open(source, 'w')
  159.         print >>f, 'a = 10'
  160.         print >>f, 'b = 20//0'
  161.         f.close()
  162.         
  163.         try:
  164.             reload(mod)
  165.         except ZeroDivisionError:
  166.             pass
  167.  
  168.         raise TestFailed('was able to reload a damaged module')
  169.         mod = sys.modules.get(TESTFN)
  170.         if mod is None:
  171.             raise TestFailed('expected module to still be in sys.modules')
  172.         
  173.         if mod.a != 10 or mod.b != 2:
  174.             raise TestFailed('module has wrong attribute values')
  175.     finally:
  176.         sys.path.pop(0)
  177.         remove_files(TESTFN)
  178.         if TESTFN in sys.modules:
  179.             del sys.modules[TESTFN]
  180.         
  181.  
  182.  
  183. test_failing_reload()
  184.